home *** CD-ROM | disk | FTP | other *** search
/ Ahoy 1987 October / Ahoy_Magazine_87-10_1987_Double_L_Side_A.d64 / Linked List (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  2KB  |  66 lines

  1. 10 rem ==========================
  2. 20 rem  linked list showoff
  3. 30 rem   rupert report #46
  4. 40 rem ==========================
  5. 50 num=50  :rem  number of odd integers
  6. 60 dim nfo(2*num),lnk(2*num),a(2*num)
  7. 70 rem - create linked list of 50 odd
  8. 80 rem    integers from 1 to 99
  9. 90 t0=ti
  10. 100 print"[147]working on linked list ..."
  11. 110 for k=1 to num
  12. 120 lnk(k)=k+1 : nfo(k)=2*k-1 : next
  13. 130 lnk(k-1)=-1 :rem  last link
  14. 140 rem
  15. 150 rem - insert even integers n into
  16. 160 rem   list with subscripts 51-100
  17. 170 nxt=num+1 : prev=1 : n=2
  18. 180 oldlnk=lnk(prev) : lnk(prev)=nxt
  19. 190 nfo(nxt)=n : lnk(nxt)=oldlnk
  20. 200 prev=prev+1 : n=n+2
  21. 210 nxt=nxt+1:if lnk(nxt-1)<>-1 then 180
  22. 220 rem
  23. 230 rem - delete odd integers from list
  24. 240 rem    they have subscripts 1-50
  25. 250 first=lnk(1) :rem move first pointer
  26. 260 k=first : lnk(1)=-1
  27. 270 oldlnk=lnk(k) : lnk(k)=lnk(oldlnk)
  28. 280 lnk(oldlnk)=-1
  29. 290 k=k+1 : if lnk(k)<>-1 then 270
  30. 300 rem
  31. 310 rem - print linked list
  32. 320 k=first
  33. 330 print nfo(k);
  34. 340 k=k+1 : if lnk(k-1)<>-1 then 330
  35. 350 tl=(ti-t0)/60 : print
  36. 360 print "linked list took "tl"seconds"
  37. 370 rem ============================
  38. 380 rem - create array of 50 odd
  39. 390 rem    integers from 1 to 99
  40. 400 t0=ti
  41. 410 print : print"working on array ..."
  42. 420 for k=1 to num
  43. 430 a(k)=2*k-1 : next
  44. 440 rem
  45. 450 rem -insert even integers n with
  46. 460 rem   subscripts 2-100 by 2's
  47. 470 p=2 :rem pointer to next element
  48. 480 rem - move all items up
  49. 490 for k=num+1 to p+1 step -1
  50. 500 a(k)=a(k-1) : next
  51. 510 rem - insert new integer
  52. 520 a(p)=p : p=p+2 :if p<=2*num then 490
  53. 530 rem - delete odd integers
  54. 540 p=1 : last=num*2
  55. 550 rem - move all items down
  56. 560 for k=p to last-1
  57. 570 a(k)=a(k+1) : next
  58. 580 last=last-1 : p=p+1
  59. 590 if last>=num then 560
  60. 600 rem - print array
  61. 610 rem
  62. 620 for k=1 to num
  63. 630 print a(k); : next
  64. 640 ta=(ti-t0)/60 : print
  65. 650 print "array took " ta "seconds"
  66.